package ca.camosun.morsecode.nongui;

public class MorseConstants {
	public enum Timing {
		
		SLOW(300),
		MEDIUM(600),
		FAST(900);
		
		private final int milliseconds;
		
		private Timing(int inMilliseconds) {
			milliseconds = inMilliseconds;
		}
		
		public int valueOf() {
			return milliseconds;
		}
	}

	public enum Token {
		
		DOT(".", 1),
		DASH("-", 3),
		SHORT_PAUSE("#", 1),
		LONG_PAUSE(" ", 7);
		
		private final String signal;
		private final int relativeTime;
		
		private Token(String sig, int time) {
			signal = sig;
			relativeTime = time;
		}
		
		@Override
		public String toString() {
			return signal;
		}
		
		public int getRelativeTime() {
			return relativeTime;
		}
	}

	public enum Index {
		DOT_DASH(0),
		LETTER(1);
		
		private final int value;
		
		private Index(int inValue) {
			value = inValue;
		}
		
		public int valueOf() {
			return value;
		}
	};
	
	public static String [][] morseLetters = {
		{".-",		"a"},
		{"-...",	"b"},
		{"-.-.",	"c"},
		{"-..",		"d"},
		{".",		"e"},
		{"..-.",	"f"},
		{"--.",		"g"},
		{"....",	"h"},
		{"..",		"i"},
		{".---",	"j"},
		{"-.-",		"k"},
		{".-..",	"l"},
		{"--",		"m"},
		{"-.",		"n"},		
		{"---",		"o"},
		{".--.",	"p"},
		{"--.-",	"q"},
		{".-.",		"r"},
		{"...",		"s"},
		{"-",		"t"},
		{"..-",		"u"},
		{"...-",	"v"},
		{".--",		"w"},
		{"-..-",	"x"},
		{"-.--",	"y"},
		{"--..",	"z"},
		
		{"-----",	"0"},
		{".----",	"1"},
		{"..---",	"2"},
		{"...--",	"3"},
		{"....-",	"4"},
		{".....",	"5"},
		{"-....",	"6"},
		{"--...",	"7"},
		{"---..",	"8"},
		{"----.",	"9"},
		
		{".-.-.-",	"."},
		{"--..--",	","},
		{"..--..",	"?"},
		{".----.",	"'"},
		{"-.-.--",	"!"},
		{"-..-.",	"/"},
		{"-.--.",	"("},
		{"-.--.-",	")"},
		{".-...",	"&"},
		{"---...",	":"},
		{"-.-.-.",	";"},
		{"-...-",	"="},
		{".-.-.",	"+"},
		{"-....-",	"-"},
		{"..--.-",	"_"},
	    {".-..-.",	"\""},
		{"...-..-",	"$"},
		{".--.-.",	"@"},
	};
	
}
